// // 语法： const newState = produce(oldState,(newState)=>{随意对状态CRUD})
// import produce from "immer" // produce一会会用到

// // 一个小的reducer就代表一个小的子store
// // 一个小的reducer就需要管理N个状态
// const initState = {
//     size: 1
// }

// // 需要传递两个参数：state  和  action
// // reducer必须是一个纯函数：不能直接去修改入参，相同的入参永远返回相同的结果
// function reducer(state = initState, action) {
//     // 操作流程也是固定死的
//     // 1）当信号到达时，先对state进行深copy
//     // 2）根据action中type和payload对老的state进行操作
//     // 3）返回修改后的那个最新的state

//     return produce(state, (newState) => {
//         // 根据action中type和payload对老的state进行操作
//     })
// }

// export default reducer;


import produce from "immer"
const initState = {
    size: localStorage.getItem("size")||"middle",
    lang:localStorage.getItem("lang")|| navigator.language.split("-")[0],
    color:localStorage.getItem("color")||"#1890ff"
}
function reducer(state = initState, { type, payload }) {
    // console.log("收到信号了：", action);
    return produce(state, (newState) => {
        // 根据action对老的state进行操作
        switch (type) {
            case "APP_SIZE_TOGGLE":
                newState.size = payload
                localStorage.setItem("size",payload)
                break;
            case "APP_LANG_TOGGLE":
                newState.lang = payload
                localStorage.setItem("lang",payload)
                break;
            case "APP_COLOR":
                newState.color = payload
                localStorage.setItem("color",payload)
                break;
            default:
        }
    })
}

export default reducer;